tg-me.com/developer_tools/232
Last Update:
DeepGit: Plumbing и Porcelain - введение.
Это первая статья из цикла предстоящих статей про git.
Я решил разбить весь материал на отдельные статьи, что бы не загружать огромными лонгридами и придерживаться формата канала.
Изначально git был больше инструментом для создания VCS чем непосредственно VCS.
Знакомый нам git в виде git add
, git commit
, git merge
итд это "высокоуровневые" врапперы над низкоуровневыми командами вроде git update-index
, git hash-object
, git cat-file
и других.
Вся "магия" гита спрятана внутри папки .git
и представляет собой своего рода файловую систему с файлами и папками.
Что у нас появляется внутри папки .git после создания:
tree -aУпустим пока все файлы кроме основных: HEAD, index, objects, refs.
.
└── .git
├── branches
├── config
├── description
├── HEAD
├── hooks
│ ├── applypatch-msg.sample
│ ├── commit-msg.sample
│ ├── post-update.sample
│ ├── pre-applypatch.sample
│ ├── pre-commit.sample
│ ├── prepare-commit-msg.sample
│ ├── pre-push.sample
│ ├── pre-rebase.sample
│ └── update.sample
├── info
│ └── exclude
├── objects
│ ├── info
│ └── pack
└── refs
├── heads
└── tags
refs
- папка содержит ссылки на обьекты коммитов.objects
- папка git-обьектовindex
- содержимое индексаHEAD
- содержит ссылку на актуальное состояние.Остальные папки вроде
hooks
которае содержит "тригеры" на на различные действия или папка config
с доп настройками для этой репы не являются частью "двигателя" гит.В следующей статье мы разберемся какие есть виды обьектов внутри гита, что они хранят итд.
BY Dev Tools
Warning: Undefined variable $i in /var/www/tg-me/post.php on line 283
Share with your friend now:
tg-me.com/developer_tools/232